#pragma once

#include <stdio.h>
#include <stdlib.h>
#include <assert.h>

// 静态开辟空间
//#define MAXSZIE 100
//typedef int SLDataType;
//typedef struct SeqList{
//    SLDataType a[MAXSIZE];
//    int size;
//    int capacity;
//}SL;
//



// 动态开辟空间
//默认开辟空间大小
#define INIT_CAPACITY 10
typedef int SLDataType;

typedef struct SeqList{
    SLDataType* a;
    int size;     //有效数据个数
    int capacity; //空间容量
}SL;

//初始化顺序表
void SLInit(SL* ps);

//销毁顺序表
void SLDestroy(SL* ps);

//打印顺序表
void SLPrint(const SL* ps);

//增容
void SLCheckCapacity(SL* ps);

//增删查改
void SLPushBack(SL* ps, SLDataType x);
void SLPopBack(SL* ps);
void SLPushFront(SL* ps, SLDataType x);
void SLPopFront(SL* ps);

void SLInsert(SL* ps, int pos, SLDataType x);
void SLErase(SL* ps, int pos);
int SLFind(SL* ps, SLDataType x);

